package com.bjx.system.service;

import cn.hutool.core.lang.tree.Tree;
import com.bjx.system.domain.query.OrgQuery;
import com.bjx.system.domain.vo.OrgVO;

import java.util.List;

/**
 * @desc: 组织信息服务接口
 * @author: liushuai
 * @date: 2022/09/29
 */
public interface IOrgService {


    /**
     * 查询组织信息列表
     * @param orgQuery
     * @return: java.util.List<com.bjx.system.domain.vo.OrgVO>
     * @Author: liushuai
     * @Date: 2022/10/8 20:02
     */
    List<OrgVO> listOrg(OrgQuery orgQuery);

    /**
     * 新增组织信息
     * @param orgVO
     * @Author: liushuai
     * @Date: 2022/09/29
     */
    void insertOrg(OrgVO orgVO);
    /**
     * 修改组织信息
     * @param orgVO
     * @Author: liushuai
     * @Date: 2022/09/29
     */
    void updateOrg(OrgVO orgVO);
    /**
     * 根据组织信息id删除组织信息
     * @param orgId
     * @return: R
     * @Author: liushuai
     * @Date:  2022/09/29
     */
    void deleteOrgByOrgId(Long orgId);
    /**
     * 根据组织信息id查询组织信息
     * @param orgId
     * @return: R<OrgVO>
     * @Author: liushuai
     * @Date: 2022/09/29
     */
    OrgVO selectOrgByOrgId(Long orgId);

    /**
     * 获取组织机构树
     * @param orgId
     * @param isCompany
     * @return: cn.hutool.core.lang.tree.Tree<java.lang.Long>
     * @Author: liushuai
     * @Date: 2022/10/7 15:41
     */
    List<Tree<Long>> listTreeOrg(Long orgId, Boolean isCompany);
}
